package implJdbc;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;

import javaBeans.Usuario;
import dao.BdUtil;
import dao.UsuarioDao;

public class UsuarioJdbc implements UsuarioDao{
	
	private Connection vObjConnection;
	
	public UsuarioJdbc(Connection pObjConnection){
		this.vObjConnection = pObjConnection;
	}

	@Override
	public void criar(Usuario pObjEntidade) throws Exception {
		pObjEntidade.setUsuario_id(BdUtil.returnID("usuario_id_seq", vObjConnection));
		BdUtil.createJDBC(vObjConnection, pObjEntidade);
	}

	@Override
	public void remover(Usuario pObjEntidade) throws Exception {
		BdUtil.removeJDBC(vObjConnection, pObjEntidade, "usuario_id");
	}

	@Override
	public void editar(Usuario pObjEntidade) throws Exception {
		BdUtil.editJDBC(vObjConnection, pObjEntidade, "usuario_id");
	}

	@Override
	public Usuario Procurar(Object pObjPK) throws Exception {
		Usuario pObjUsuario = new Usuario();
		pObjUsuario.setUsuario_id(Integer.parseInt(pObjPK.toString()));
		BdUtil.findByJDBC(vObjConnection, pObjUsuario, "usuario_id", true, true);
		return pObjUsuario;
	}
	
	@Override
	public List BuscarTudo(int pintOrdem, boolean pbooDecrescente) throws Exception {
        Statement vStmSTMT = null;
        ResultSet vResRS = null;
        String pStrSQL = "SELECT * FROM usuario";
		vResRS = vStmSTMT.executeQuery(pStrSQL);
		
		return BdUtil.returnListDados(vObjConnection, pStrSQL);		
	}

	public Usuario BuscarPorLogin(String plogin) throws Exception {
        Statement vStmSTMT = null;
        ResultSet vResRS = null;
		Usuario pObjUsuario = new Usuario();
        
        String pStrSQL = "SELECT * FROM usuario where usuario_login="+plogin;
		vResRS = vStmSTMT.executeQuery(pStrSQL);

		pObjUsuario = (Usuario) vResRS;
		
		return pObjUsuario;
	}
}
